import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";
import compression from 'vite-plugin-compression';

// https://vitejs.dev/config/
export default defineConfig({
  base: "/",
  plugins: [
      vue(),
    compression({
    algorithm: 'brotliCompress', // 或 'gzip'
    threshold: 10240, // 仅压缩大于 10KB 的文件
  }),
],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')// 配置@/提示符

    },
  },
  // 打包输出目录
  build: {
    outDir: 'dist',
    assetsDir: 'assets',

    // 代码分割和压缩配置
    rollupOptions: {
      output: {
        manualChunks(id) {
          // 将较大的依赖单独打包
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString();
          }
        }
      }
    },

    // 生产环境移除 console 和 debugger
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true
      }
    }
  },

  // 开发服务器配置
  server: {
    port: 3000,
    open: true, // 自动打开浏览器
    proxy: {
      // API 代理配置
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },
});
